/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.camachosanchez.reportes;

import com.camachosanchez.reportes.bean.NeumaticosPorCategoria;
import com.camachosanchez.util.Constantes;
import com.camachosanchez.util.GUIUtil;
import com.camachosanchez.util.ReportUtil;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.util.List;

/**
 *
 * @author ZULLY
 */
public class _ReporteNeumaticosXCategoria {
    
    public static String generarReporte(NeumaticosPorCategoria npc) {
        String rutaArchivo = "reportes/neumaticosXubicacion" + "_" + GUIUtil.obtenerFechaDDMMYYYHHMMSS() + ".pdf";
        try {
            Document document = new Document(PageSize.A4, 20, 20, 20, 20);
            PdfWriter.getInstance(document, new FileOutputStream(rutaArchivo));
            document.open();
            Paragraph paragraph = new Paragraph();
            paragraph.setAlignment(Element.ALIGN_CENTER);
            document.add(ReportUtil.obtenerCabeceraTabla("REPORTE DE NEUMÁTICOS POR UBICACIÓN"));
            document.add(new Paragraph("\n"));
            List<String[]> neumaticos = npc.getListaNeumaticos();
            float[] anchoColsInf = {2f, 2.5f, 2.5f, 2.0f, 0.5f, 1.5f, 1.5f, 4.5f};
            PdfPTable tablaDetalles = new PdfPTable(anchoColsInf);
            tablaDetalles.setWidthPercentage(100);
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("CÓDIGO", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("MARCA", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("MEDIDA", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("TIPO PISO", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("R", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("ALTURA", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("ESTADO", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla("UBICACIÓN", Constantes.fuenteTitulos, 1, Constantes.COLOR_CABECERA_TABLA));
            for (String[] n : neumaticos) {
                if (n.length == 8) {
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[0], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[1], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[2], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[3], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[4], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[5], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[6], Constantes.fuenteCuerpo, 1));
                    tablaDetalles.addCell(ReportUtil.obtenerCeldaCabeceraTabla(n[7], Constantes.fuenteCuerpo, 1));
                }
            }
            document.add(tablaDetalles);
            document.close();
        } catch (Exception e) {
            e.printStackTrace();
            rutaArchivo = null;
        } finally {
            return rutaArchivo;
        }
    }
}
